/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ceair.flight.refund.dto.appmoblie;

import com.ceair.flight.refund.dto.external.PayDto;
import com.ceair.muservice.common.dto.BaseReq;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;



/**
 *
 * @author youguilin
 */
public class RefundPayDto  extends BaseReq implements Serializable {

    private static final long serialVersionUID = -7393585129753133462L;

    private Long id;//主键ID
    private List<Long> ids;
    private String payNo;//支付流水号
    private PayDto pay;
    private String currency;//货币
    private BigDecimal refundAmount;//退款金额
    private String bankCode;//银行代码(CHINAPAY, BILL99PAY_ACCRDT)
    private Integer status;//退款状态(1:退款中，2：成功, 3：失败)
    private String refundPayNo;//退款流水号
    private Integer payType;//1：统一快钱 2：银联 3：汇付 4：统一支付宝网银 5：统一支付宝余额 6：易宝支付 9：支付宝 10：支付宝代扣 11：易宝代扣 12：支付宝APP 20：虚拟支付 0：所有银行 -1：单一银行
    private String orderNo;//大订单编号
    private String paySuccessNo;//支付成功单号
    private String refundSuccessNo;//退款成功单号
    private Date refundSuccessDate;//退款成功日期
    private Date refundApplyDate;//退票申请日期
    private String refundApplyId;//所有的退款申请单
    private String sccode;//销售渠道代码
    private String subsccode;//子销售渠道代码
    private String pccode;//原支付渠道代码
    private String subpccode;//原子支付渠道代码
    private String notifyUrl;//退款结果异步响应给销售渠道的地址，若销售渠道不需要异步应答，则该域不传
    private String orgscdate;//销售渠道原支付订单日期yyyyMMdd
    private String remark;//退款备注
    private String resv1;//保留域1
    private String resv2;//保留域2
    private String resv3;//保留域3
    private String resv4;//保留域4
    private Integer refundType;//RefundTypeEnum枚举
    private Integer[] refundTypes;//RefundTypeEnum枚举
    private String channelCode;// 渠道
//    private String site;//站点
    private Date startCreateDate;
    private Date endCreateDate;
    private List<String> excludePcCodes;
    private Integer deleted = 0;// 0：未删除 1：删除
    private String country;//国家
    private String language;//语言
    private Date createDtm; // 创建日期
    private Date updateDtm; // 修改日期

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPayNo() {
        return payNo;
    }

    public void setPayNo(String payNo) {
        this.payNo = payNo;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public String getBankCode() {
        return bankCode;
    }

    public void setBankCode(String bankCode) {
        this.bankCode = bankCode;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getRefundPayNo() {
        return refundPayNo;
    }

    public void setRefundPayNo(String refundPayNo) {
        this.refundPayNo = refundPayNo;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getPaySuccessNo() {
        return paySuccessNo;
    }

    public void setPaySuccessNo(String paySuccessNo) {
        this.paySuccessNo = paySuccessNo;
    }

    public String getRefundSuccessNo() {
        return refundSuccessNo;
    }

    public void setRefundSuccessNo(String refundSuccessNo) {
        this.refundSuccessNo = refundSuccessNo;
    }

    public Date getRefundSuccessDate() {
        return refundSuccessDate;
    }

    public void setRefundSuccessDate(Date refundSuccessDate) {
        this.refundSuccessDate = refundSuccessDate;
    }

    public Date getRefundApplyDate() {
        return refundApplyDate;
    }

    public void setRefundApplyDate(Date refundApplyDate) {
        this.refundApplyDate = refundApplyDate;
    }

    public String getSccode() {
        return sccode;
    }

    public void setSccode(String sccode) {
        this.sccode = sccode;
    }

    public String getSubsccode() {
        return subsccode;
    }

    public void setSubsccode(String subsccode) {
        this.subsccode = subsccode;
    }

    public String getPccode() {
        return pccode;
    }

    public void setPccode(String pccode) {
        this.pccode = pccode;
    }

    public List<String> getExcludePcCodes() {
        return excludePcCodes;
    }

    public void setExcludePcCodes(List<String> excludePcCodes) {
        this.excludePcCodes = excludePcCodes;
    }

    public String getSubpccode() {
        return subpccode;
    }

    public void setSubpccode(String subpccode) {
        this.subpccode = subpccode;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getOrgscdate() {
        return orgscdate;
    }

    public void setOrgscdate(String orgscdate) {
        this.orgscdate = orgscdate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public static long getSerialversionuid() {
        return serialVersionUID;
    }

    /**
     *
     * @return 保留域1
     */
    public String getResv1() {
        return resv1;
    }

    public void setResv1(String resv1) {
        this.resv1 = resv1;
    }

    /**
     *
     * @return 保留域2
     */
    public String getResv2() {
        return resv2;
    }

    public void setResv2(String resv2) {
        this.resv2 = resv2;
    }

    /**
     *
     * @return 保留域3
     */
    public String getResv3() {
        return resv3;
    }

    public void setResv3(String resv3) {
        this.resv3 = resv3;
    }

    /**
     *
     * @return 保留域4
     */
    public String getResv4() {
        return resv4;
    }

    public void setResv4(String resv4) {
        this.resv4 = resv4;
    }

    public List<Long> getIds() {
        return ids;
    }

    public void setIds(List<Long> ids) {
        this.ids = ids;
    }

    public String getRefundApplyId() {
        return refundApplyId;
    }

    public void setRefundApplyId(String refundApplyId) {
        this.refundApplyId = refundApplyId;
    }

    public Integer getRefundType() {
        return refundType;
    }

    public void setRefundType(Integer refundType) {
        this.refundType = refundType;
    }

    public Integer[] getRefundTypes() {
        return refundTypes;
    }

    public void setRefundTypes(Integer[] refundTypes) {
        this.refundTypes = refundTypes;
    }

    @Override
    public String toString() {
        return "RefundPayDto [id=" + id + ", ids=" + ids + ", payNo=" + payNo + ", currency=" + currency
                + ", refundAmount=" + refundAmount + ", bankCode=" + bankCode + ", status=" + status + ", refundPayNo="
                + refundPayNo + ", payType=" + payType + ", orderNo=" + orderNo + ", paySuccessNo=" + paySuccessNo
                + ", refundSuccessNo=" + refundSuccessNo + ", refundSuccessDate=" + refundSuccessDate
                + ", refundApplyDate=" + refundApplyDate + ", refundApplyId=" + refundApplyId + ", sccode=" + sccode
                + ", subsccode=" + subsccode + ", pccode=" + pccode + ", subpccode=" + subpccode + ", notifyUrl="
                + notifyUrl + ", orgscdate=" + orgscdate + ", remark=" + remark + ", resv1=" + resv1 + ", resv2="
                + resv2 + ", resv3=" + resv3 + ", resv4=" + resv4 + ", refundType=" + refundType + ", refundTypes="
                + Arrays.toString(refundTypes) + ", channelCode=" + channelCode + ", site=" + site + "]";
    }

    public String getChannelCode() {
        return channelCode;
    }

    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode;
    }

//    public String getSite() {
//        return site;
//    }
//
//    public void setSite(String site) {
//        this.site = site;
//    }
//
    public PayDto getPay() {
        return pay;
    }

    public void setPay(PayDto pay) {
        this.pay = pay;
    }

    public Date getStartCreateDate() {
        return startCreateDate;
    }

    public void setStartCreateDate(Date startCreateDate) {
        this.startCreateDate = startCreateDate;
    }

    public Date getEndCreateDate() {
        return endCreateDate;
    }

    public void setEndCreateDate(Date endCreateDate) {
        this.endCreateDate = endCreateDate;
    }

    public Integer getDeleted() {
        return deleted;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    public Date getCreateDtm() {
        return createDtm;
    }

    public void setCreateDtm(Date createDtm) {
        this.createDtm = createDtm;
    }

    public Date getUpdateDtm() {
        return updateDtm;
    }

    public void setUpdateDtm(Date updateDtm) {
        this.updateDtm = updateDtm;
    }
}
